﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace ORMDemo.Core.Validate
{
    public class ValidateTelVerify:BaseValidateAttribute
    {
        public override bool Validate(object value)
        {
            return value!=null && !string.IsNullOrWhiteSpace(value.ToString())&& IsValidChineseMobileNumber(value.ToString());
        }
        /// <summary>
        /// 验证中国大陆手机号码是否有效
        /// </summary>
        /// <param name="mobileNumber">手机号码字符串</param>
        /// <returns>是否有效</returns>
        public static bool IsValidChineseMobileNumber(string mobileNumber)
        {
            // 正则表达式：匹配13x、14x、15x、16x、17x、18x、19x号段
            // 具体号段包括：
            // 13[0-9], 14[5-9], 15[0-9], 16[6-7], 17[0-8], 18[0-9], 19[8-9]
            string pattern = @"^(?:\+?86)?1(?:3\d{3}|4[5-9]\d{2}|5[0-9]\d{2}|6[6-7]\d{2}|7[0-8]\d{2}|8\d{3}|9[8-9]\d{2})\d{6}$";

            // 如果输入为空直接返回false
            if (string.IsNullOrWhiteSpace(mobileNumber))
                return false;

            // 使用正则表达式进行匹配
            return Regex.IsMatch(mobileNumber, pattern);
        }
    }
}
